/*
* @author : TF-BJ-C064
* @creation : 2014-6-20 下午7:51:43
* @description : 
*
*/

package com.service;

import java.util.List;

public interface BaseService {
	
	/**
	 * 根据ID获取Object对象
	 * <p>Title: get</p>
	 * <p>Description:根据ID获取Object对象</p>
	 * @param id 
	 * @return 
	 * @throws Exception
	 */
	public Object get(Integer id) throws Exception;
	
	/**
	 * 模糊查询
	 * <p>Title: query</p>
	 * <p>Description: </p>
	 * @param object  查询条件参数
	 * @return Object对象
	 * @throws Exception
	 */
	public List<Object> query(Object object) throws Exception;
	
	/**
	 * 更新对象object
	 * <p>Title: update</p>
	 * <p>Description: </p>
	 * @param object 被更新的对象，ID不能为空
	 * @return 
	 * 			com.Util.GUtil.SUCCESS  成功
	 * 			com.Util.GUtil.FAILE	失败
	 * @throws Exception
	 */
	public String update(Object object) throws Exception;
	
	/**
	 * 删除对象
	 * <p>Title: delete</p>
	 * <p>Description: </p>
	 * @param id 对象ID
	 * @param flag 删除方式：
	 * 			null: 直接删除
	 * 			非空：status被设置的值，参考  com.Util.StatusUtil
	 * @return 
	 * 			com.Util.GUtil.SUCCESS  成功
	 * 			com.Util.GUtil.FAILE	失败
	 * @throws Exception
	 */
	public String delete(Integer id, Integer flag) throws Exception;
	
	/**
	 * 根据特定属性查询
	 * <p>Title: findByProperty</p>
	 * <p>Description: </p>
	 * @param propertyName	属性名称
	 * @param value		属性值
	 * @return	List
	 * @throws Exception
	 */
	public List findByProperty(String propertyName, Object value) throws Exception;
	
	/**
	 * 根据实例查询(非模糊查询)
	 * <p>Title: findByExample</p>
	 * <p>Description: </p>
	 * @param test	实例对象
	 * @return	List
	 * @throws Exception
	 */
	public List findByExample(Object object) throws Exception;
	
}
